package org.example.scoresystem_backen.entity;

import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.AllArgsConstructor;

/**
 * 管理员实体类
 * 对应数据库admin表
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
public class Admin {

    /**
     * 管理员id
     */
    private Integer id;

    /**
     * 用户名
     */
    private String username;

    /**
     * 密码
     */
    private String password;

    /**
     * 角色：0-学生，1-管理员，2-超级管理员
     */
    private Role role = Role.ADMIN;

    public enum Role {
        STUDENT("0"),
        ADMIN("1"),
        SUPER_ADMIN("2");

        private final String value;

        Role(String value) {
            this.value = value;
        }

        public String getValue() {
            return value;
        }

        /**
         * 根据值获取枚举
         * @param value 值
         * @return 对应的枚举
         */
        public static Role fromValue(String value) {
            for (Role role : Role.values()) {
                if (role.getValue().equals(value)) {
                    return role;
                }
            }
            throw new IllegalArgumentException("未知的角色值: " + value);
        }
    }
}
